<?php

require 'phpexcel/Classes/PHPExcel.php';

// 模拟1000条借读记录数据
$records = [];
for ($i = 1; $i <= 1000; $i++) {
    $name = generateRandomName();
    $studentId = generateRandomStudentId();
    $bookName = generateRandomBookName();
    $borrowTime = generateRandomDateTime();
    $returnTime = generateRandomDateTimeAfter($borrowTime);

    $records[] = [$name, $studentId, $bookName, $borrowTime, $returnTime];
}

// 创建新的PHPExcel对象
$objPHPExcel = new PHPExcel();

// 设置表头
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', '姓名')
    ->setCellValue('B1', '学号')
    ->setCellValue('C1', '图书名称')
    ->setCellValue('D1', '借读时间')
    ->setCellValue('E1', '归还时间');

// 填充数据
foreach ($records as $key => $record) {
    $row = $key + 2;
    $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A' . $row, $record[0])
        ->setCellValue('B' . $row, $record[1])
        ->setCellValue('C' . $row, $record[2])
        ->setCellValue('D' . $row, $record[3])
        ->setCellValue('E' . $row, $record[4]);
}

// 设置文件名和格式
$filename = '借读记录_1000条.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');

// 导出 Excel 文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit();

// 生成随机姓名
function generateRandomName()
{
    $firstNames = ['张', '王', '李', '赵', '陈', '刘', '杨', '黄', '吴', '马'];
    $lastNames = ['小', '大', '明', '丽', '文', '红', '刚', '美', '勇', '芳'];

    $firstName = $firstNames[array_rand($firstNames)];
    $lastName = $lastNames[array_rand($lastNames)];

    return $lastName . $firstName;
}

// 生成随机学号
function generateRandomStudentId()
{
    return '2022' . rand(1000, 9999);
}

// 生成随机图书名称
function generateRandomBookName()
{
    $bookNames = ['PHP编程指南', '数据库设计原理', '算法与数据结构', '网络安全基础', '人工智能入门', '软件工程实践', '操作系统原理', 'Web前端开发', '物联网技术', '移动应用开发'];

    return $bookNames[array_rand($bookNames)];
}

// 生成随机日期时间
function generateRandomDateTime()
{
    return date('Y-m-d H:i:s', mt_rand(1, time()));
}

// 在指定时间后生成随机日期时间
function generateRandomDateTimeAfter($startTime)
{
    $startTimestamp = strtotime($startTime);
    $endTimestamp = time();

    return date('Y-m-d H:i:s', mt_rand($startTimestamp, $endTimestamp));
}

